【アップデート】EC2 Run Commandの事前定義コマンドが増えました
ウィスキー、シガー、パイプをこよなく愛する大栗です。
本日EC2 Run Commandで選択できるコマンドが増えたので内容を確認してみました。
何がEC2 Run Commandに追加されたの?
まずEC2 Run Commandについては、以下の記事を御覧ください。
【新機能】EC2に任意のコマンドを実行できるボタン「Run Command」が追加(まだWindowsだけ)
【新機能】EC2に任意のコマンドを実行できるボタン「Run Command」がついにLinuxにも追加
今回追加されたコマンドはWindowsインスタンスに対するもので、インベントリ情報の収集とオンデマンドのパッチ適用ができるようになりました。
- インベントリ情報の収集(AWS-ListWindowsInventory)
OSのバージョン、言語、詳細
インストールされているアプリケーション
インストールされているOSアップデート -
オンデマンドのパッチ適用
- インスタンスをスキャンして不足しているアップデートを確認する(AWS-FindWindowsUpdates)
- インスタンスに特定の更新プログラムをインストールする(AWS-InstallSpecificWindowsUpdates)
- インスタンスに不足している更新プログラムをインストールする(AWS-InstallMissingWindowsUpdates)
実際に試します
EC2の準備
今回追加されたコマンドはWindows用なのでWindowsのEC2インスタンスを起動します。2016年4月5日現在東京リージョンでWindows Server 2012 R2の日本語版AMIには以下の3種類があります。
- Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.01.25(ami-6dbb8203)
- Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.02.10(ami-36bfbb58)
- Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.03.09(ami-58282636)
最新のアップデートが当たっていない物が欲しいため、一番古いWindows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.01.25(ami-6dbb8203)
を起動します。
コマンドを実行する
[EC2]-[コマンド]の画面でコマンドを実行
をクリックしてRun Commandを実行していきいます。
インベントリ情報の収集
まずはインベントリ情報の収集を行います。
コマンドのドキュメントでAWS-ListWindowsInventory
を選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
様々な情報を取得するため各パラメータを以下の様に選択しました。
パラメータ | 設定値 | 備考 |
---|---|---|
List OS Information | true | OS情報の一覧 |
List Installed Applications | true | インストールされているアプリケーションの一覧 |
List Installed Updates | true | インストールされているOSアップデートの一覧 |
タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。一番下には、CLIで実行するためのコマンドも表示されます。
実行するとコマンドの状態がPending
となるので、実行完了まで待ちます。
コマンドの状態がSuccess
になって実行が完了したら実行結果がS3バケットに保存されるので確認します。
実行結果の保存先は、Prefixを指定していないので <指定したS3バケット>/<コマンドID>/<インスタンスID>/awsrunPowerShellScript/stdout.txt となっています。
結果はリンク先のようになります。
OSの詳細情報(Get-OSInventory)やインストールされているアプリケーション(Get-AppInventory)、インストールされているOSアップデート(Get-PatchInventory)が確認できます。
Get-OSInventory - WIN-H615HFCID8U - 2016-04-04T22:18:39Z Schema: 1.0 Publisher: Microsoft Corporation OSName: Microsoft Windows Server 2012 R2 Standard OSVersion: 6.3.9600 ExtendedProperties: Key: ServicePackLevel Value: null Key: OSArchitecture Value: 64 ビット Key: OSLanguageId Value: 1041 Key: OSLanguage Value: 日本語 (日本) Key: ProductType Value: 3 Key: OperatingSystemSKU Value: 7 Key: OperatingSystemSKUName Value: Standard Server Edition Get-AppInventory - WIN-H615HFCID8U - 2016-04-04T22:18:41Z Schema: 1.0 InstalledApplications: Name: AWS PV Drivers Version: 7.3.2 Publisher: Amazon Web Services InstalledOn: 2015-08-13T00:00:00Z InstallLocation: null Name: aws-cfn-bootstrap Version: 1.4.10 Publisher: Amazon Web Services InstalledOn: 2015-08-13T00:00:00Z InstallLocation: null Name: EC2ConfigService Version: 3.12.649.0 Publisher: Amazon Web Services InstalledOn: 2016-01-13T00:00:00Z InstallLocation: null Get-PatchInventory - WIN-H615HFCID8U - 2016-04-04T22:18:42Z Schema: 1.0 Patches: HotFixId: KB3121212 Description: Security Update InstalledOn: 2016-01-13T00:00:00Z InstalledBy: NT AUTHORITY\SYSTEM ・ ・ ・
オンデマンドのパッチ適用
次はオンデマンドのパッチ適用を行ってみます。
アップデートの確認(AWS-FindWindowsUpdates)
アップデートの確認を行います。
コマンドのドキュメントでAWS-FindWindowsUpdates
を選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
確認対象のアップデートのレベルを指定するUpdate LevelではImportant
を選択しました。タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。
実行するとFailedになってしまいました。
出力結果を確認すると、以下の様に表示されています。EC2Configのバージョンが古いようなのでAWS-UpdateEC2Config
を実行した後に、再度実行します。
CheckEC2ConfigVersion : This command requires EC2Config version 3.14.786 or hig her. Please run the command AWS-UpdateEC2Config to update EC2Config and try aga in. 発生場所 C:\ProgramData\Amazon\Ec2Config\Downloads\aws_psModule\owhhtvgm.nh4.ps 1:83 文字:9 + CheckEC2ConfigVersion + ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorExcep tion + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorExceptio n,CheckEC2ConfigVersion
Importantで実行した結果は、リンク先の様になりました。Important Updateは合計19個になっています。
パッチレベル | 個数 |
---|---|
ImportantUpdates | 19 |
Critical | 2 |
Important | 14 |
Moderate | 1 |
Low | 0 |
Unspecified | 2 |
OptionalUpdates | 0 |
TotalUpdates | 19 |
WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T02:38:35.873 Important Updates: 19 Critical: 2 Important: 14 Moderate: 1 Low: 0 Unspecified: 2 Optional Updates: 0 Total Updates: 19 Critical 3137513 3140735 Important 3126593 3133043 3127226 3134222 3122654 3126041 3126434 3126446 3126587 3139940 3139398 3139852 3139914 3135994 Moderate 3139929 Unspecified (Important) 890830 3138615 KBArticleId : 3137513 Name : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31 37513) Id : c0ba6312-2528-49c9-9282-adee07e5a3b8 ReleaseDate : 2016/03/08 0:00:00 +00:00 Severity : Critical Category : PatchNow.Implementations.UpdateCategory CategoryName : Security Updates IsDownloaded : False IsInstalled : False Size : 5762 RebootRequired : False EulaAccepted : True CanRequestUserInput : False SecurityBulletinIds : {MS16-028} SupersededUpdateIds : {128ff4a5-520a-4af2-a59b-04e8315dfb36, 10f82031-e091-4470 -8b6b-402c49fa456b} Identity : System.__ComObject HResult : 0 Description : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え る可能性があるセキュリティ問題が発見されました。この更新プ ログラムをインストールすると、お使いのシステムを保護できま す。この更新プログラムの対象となる問題の完全な一覧について は、関連するサポート技術情報を参照してください。インストール 後には、システムの再起動が必要になる場合があります。 IsImportant : True ・ ・ ・
特定の更新プログラムをインストール(AWS-InstallSpecificWindowsUpdates)
次に特定アップデートをインストールします。
コマンドのドキュメントでAWS-FindWindowsUpdates
を選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
ここでは、先ほど確認した時にCriticalとして表示されていた「3137513」と「3140735」をカンマで繋いで指定します。
タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。
実行結果は以下の通りとなり、Criticalの「3137513」と「3140735」がインストールされました
WIN-H615HFCID8U - PatchNow Installation Results - 2016-04-05T03:00:24.923 Important Updates: 2 Critical: 2 Important: 0 Moderate: 0 Low: 0 Unspecified: 0 Optional Updates: 0 Total Updates: 2 KbArticleId Installed Message ----------- ----------- ----------- 3137513 Yes Success 3140735 Yes Success KBArticleId : 3137513 Name : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31 37513) Id : c0ba6312-2528-49c9-9282-adee07e5a3b8 ReleaseDate : 2016/03/08 0:00:00 +00:00 Severity : Critical Category : PatchNow.Implementations.UpdateCategory CategoryName : Security Updates IsDownloaded : True IsInstalled : True Size : 5762 RebootRequired : False EulaAccepted : True CanRequestUserInput : False SecurityBulletinIds : SupersededUpdateIds : Identity : HResult : 0 Description : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え る可能性があるセキュリティ問題が発見されました。この更新プ ログラムをインストールすると、お使いのシステムを保護できま す。この更新プログラムの対象となる問題の完全な一覧について は、関連するサポート技術情報を参照してください。インストール 後には、システムの再起動が必要になる場合があります。 IsImportant : True KBArticleId : 3140735 Name : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31 40735) Id : 18c3ca8c-b318-4604-9e36-6c62b80a23d5 ReleaseDate : 2016/03/08 0:00:00 +00:00 Severity : Critical Category : PatchNow.Implementations.UpdateCategory CategoryName : Security Updates IsDownloaded : True IsInstalled : True Size : 465 RebootRequired : True EulaAccepted : True CanRequestUserInput : False SecurityBulletinIds : SupersededUpdateIds : Identity : HResult : 0 Description : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え る可能性があるセキュリティ問題が発見されました。この更新プ ログラムをインストールすると、お使いのシステムを保護できま す。この更新プログラムの対象となる問題の完全な一覧について は、関連するサポート技術情報を参照してください。インストール 後には、システムの再起動が必要になる場合があります。 IsImportant : True
もう一度AWS-FindWindowsUpdates
で確認すると、以下の通りCriticalが0件となっています。
WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T03:06:28.883 Important Updates: 17 Critical: 0 Important: 14 Moderate: 1 Low: 0 Unspecified: 2 Optional Updates: 0 Total Updates: 17 Important 3126593 3133043 3127226 3134222 3122654 3126041 3126434 3126446 3126587 3139940 3139398 3139852 3139914 3135994 Moderate 3139929 Unspecified (Important) 890830 3138615 ・ ・ ・
不足している更新プログラムをインストール(AWS-InstallMissingWindowsUpdates)
最後に不足しているアップデートを全てインストールします。
コマンドのドキュメントでAWS-InstallMissingWindowsUpdates
を選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
インストール対象のアップデートのレベルを指定するUpdate LevelではImportant
を選択しました。Exclude Kb Article Ids
を入力することでインストール対象から除外することができます。
タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。
実行結果はリンク先の様になります。不足していたアップデートを全て適用しました。
WIN-H615HFCID8U - PatchNow Installation Results - 2016-04-05T03:27:43.287 Important Updates: 17 Critical: 0 Important: 14 Moderate: 1 Low: 0 Unspecified: 2 Optional Updates: 0 Total Updates: 17 KbArticleId Installed Message ----------- ----------- ----------- 3126593 Yes Success 3133043 Yes Success 3127226 Yes Success 3134222 Yes Success 3122654 Yes Success 3126041 Yes Success 3126434 Yes Success 3126446 Yes Success 3126587 Yes Success 3139940 Yes Success 3139398 Yes Success 3139852 Yes Success 3139914 Yes Success 3135994 Yes Success 3139929 Yes Success 890830 Yes Success 3138615 Yes Success KBArticleId : 3126593 Name : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31 26593) Id : 3ce61d87-7153-4540-a74b-fd0065edfdde ReleaseDate : 2016/02/09 0:00:00 +00:00 Severity : Important Category : PatchNow.Implementations.UpdateCategory CategoryName : Security Updates IsDownloaded : True IsInstalled : True Size : 8587 RebootRequired : True EulaAccepted : True CanRequestUserInput : False SecurityBulletinIds : SupersededUpdateIds : Identity : HResult : 0 Description : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え る可能性があるセキュリティ問題が発見されました。この更新プ ログラムをインストールすると、お使いのシステムを保護できま す。この更新プログラムの対象となる問題の完全な一覧について は、関連するサポート技術情報を参照してください。インストール 後には、システムの再起動が必要になる場合があります。 IsImportant : True ・ ・ ・
念のためAWS-FindWindowsUpdates
でも確認しましょう。
確認結果は以下の通りImportantでは対象のアップデートが無くなりました。
WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T03:33:01.655 Important Updates: 0 Critical: 0 Important: 0 Moderate: 0 Low: 0 Unspecified: 0 Optional Updates: 0 Total Updates: 0
さいごに
WindowsインスタンスのOS情報や面倒なWindowsのパッチ適用をRun Commandから実行できるようになりました。全てカスタムなスクリプトを作成すれば操作可能なのですが、事前定義コマンドが増えるとOSレイヤ以上の管理がAWSと統合できて管理が楽になりますね。
ただし、セキュリティについては注意が必要です。以前はAWSインフラとOSの中のセキュリティを分けて考えることができましたが、AWSからOS内部の操作が可能になっているのでIAMの権限分離などに検討が必要になります。ご注意ください。
それと、Linux版SSM Agentのソースがgithubで公開されました。ライセンスはAmazon Software Licenseとなっており、利用できる環境は「Amazon.com及びAmazon Web Services Inc.を含む関連会社が提供するウェブサービス、コンピュータ・プラットフォームまたはアプリケーション」となっているのでAWS上で使用しましょう。